package com.erp.erp_servers.business;

import com.erp.erp_entitys.business.entity.TaskEntity;
import com.erp.erp_entitys.business.req.*;
import com.erp.erp_entitys.business.rsp.QueryTaskStatisticsOneRes;
import com.erp.erp_entitys.business.rsp.QueryTaskStatisticsTwoRes;

import java.util.List;

/**
 * @ClassName : ITaskService
 * @Description : 任务主表接口
 * @Author : lst
 * @Date: 2021-01-18 02:21
 */
public interface ITaskService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    TaskEntity queryById(Integer id);


    /**
     * 通过实体作为筛选条件查询
     *
     * @param task 实例对象
     * @return 对象列表
     */
    List<TaskEntity> queryAll(TaskEntity task);

    /**
     * 新增数据
     *
     * @param task 实例对象
     * @return 影响行数
     */
    int insert(TaskEntity task);

    /**
     * 修改数据
     *
     * @param task 实例对象
     * @return 影响行数
     */
    int update(TaskEntity task);

    /**
     * 获取任务集合
     * @param req 查询参数
     * @return 任务集合
     */
    List<TaskEntity> getTaskListInfo(TaskPageListInfoReq req);

    /**
     * 获取备货集合
     * @param req 查询参数
     * @return 备货集合
     */
    List<TaskEntity> queryImportTaskInfo(ImportTaskInfoReq req);


    /**
     * 获取备货量
     * @param req 查询条件
     * @return 总和
     */
    long getTaskCount(StatisticsInfoReq req);


    /**
     * 任务(备货合同)产品交期一览表
     * @param req
     * @return
     */
    List<QueryTaskStatisticsOneRes> getTaskStatisticsOneList(QueryTaskStatisticsOneReq req);

    /**
     * 备货采购情况
     * @param req
     * @return
     */
    List<QueryTaskStatisticsTwoRes> getTaskPurchaseStatisticsList(QueryTaskStatisticsTwoReq req);


}
